class Solution {
public:
    int numberOfArithmeticSlices(vector<int>& A) {
        // int n=nums.size();
        // vector<int>d(n+1);
        // d[1]=nums[0];
        // for(int i=2;i<=n;i++){
        //     d[i]=nums[i-1]-nums[i-2];
        // }
        // int ans=0;
        // for(int i=2;i<=n;i++){
        //     int j=i;
        //     while(j<=n&&d[i]==d[j])j++;
        //     int x=j-i;
        //     ans+=x*(x-1)/2;
        //     i=j-1;
        // }
        // return ans;
        for (int i = A.size() - 1; i >= 1; i--) {
            A[i] -= A[i - 1];
        }
        int ans = 0;
        for (int i = 1; i < A.size(); i++) {
            int j = i;
            while (j < A.size() && A[i] == A[j])j++;
            int k = j - i;
            ans += k * (k - 1) / 2;
            i = j - 1;
        }
        return ans;
    }
};